In floating-point operations, the computer is limited by the number of bits it can store for a particular number. Rounding is therefore necessary to adjust a number so that it is accurate to a certain specified precision consistent with the capacity of the computer to store the -number. For example, rounding to even is accomplished by adding one-half of the least-significant digit position of the desired precision to the most-significant digit of the portion that will eventually be discarded. For example, consider the number 38.5XXX (where XXX are additional digits in the number). If XXX&gt;0 (case 1 the rounding is correct to the number 39, because 39 is nearest to 38.5XXX. But if XXX=o (case 2) the rounding is incorrect because it is a tie situation which requires the result to be rounded to even (38). A single bit is used to distinguish between case 1 and case 2. This bit is generated by taking the logical OR of the bits XXX. This bit is called the sticky bit and is given a value of 1 for case 1 and a value of 0 for case 2. The sticky bit is used to distinguish between these two cases where a number, such as 38.5, is rounded to the nearest whole number. The examples above are taken from the book "Introduction to Arithmetic for Digital Systems Designers," by Waser and Flynn, 1982, CBS College Publishing.
In a multiply operation ordinarily the sticky bit cannot be calculated until the result of the multiply has been determined. This results in the need for additional clock cycles to be taken during a multiply operation to determine the sticky bit in seriatim with the calculation of partial products.
It is an object of the present invention to speed up the operation of a floating-point multiply-unit by computing the sticky bit is in parallel with partial product generation.